var express = require('express');
var router = express.Router();
const { createToken } = require("tools-factory-tang/jwt")
// 引入tools中加密方法
const { md5 } = require("tools-factory-tang/salt")
const { login, reg,  getOne,get,Delete,getsearch,getone} = require("../api/users")
/* GET users listing. */
//用户登录
router.get('/login', async function (req, res, next) {
  const { username, password,phone } = req.query;
  // 对密码加密
  const pwd = md5(password);
  // 从用户数据库中获取对应用户数据
  const { data, status } = await login({ username, password: pwd ,phone });
  // 判断是否返回用户
  if (status) {
    // 创建令牌并加密
    const token = createToken({ username })
    res.send({
      status: true,
      token,
      data
    });
  } else {
    res.send({ status: false });
  }


});

//用户注册
router.post('/reg', async function (req, res, next) {
  const { username, password,phone  } = req.body;
  // 对密码进行加密
  const pwd = md5(password);
  // 判断第一次输入的密码和确认的密码是否相同
  // 将注册用户添加到用户数据库内
  const data = await reg({ username, password: pwd,phone  });
  const status = true;
  // 判断用户是否添加成功
  if (data) {
    res.send(status);
  } else {
    status = false;
    res.send(status);
  }

});

// 获取用户
router.get('/getOne/:_id', async function (req, res, next) {
  // req.params从传入参数中获取数据
  const { _id } = req.params;
  // 通过_id找到对应用户
  const data = await getOne(_id);
  // 将获取的用户数据发送到页面
  res.send(data);
});
// 获取用户列表信息
router.get('/', async function (req, res, next) {
  const { curPage, eachPage } = req.query;
  const data = await get({ curPage, eachPage })
  res.send(data);

});
// 删除
router.delete("/",async function (req, res, next) {
  const{_id} =req.body;
  const data=await Delete(_id);
  res.send(data)
});
// 搜索数据
router.get('/getsearch', async function (req, res, _next) {
  const { username } = req.query;
  const data = await getsearch(username)

  res.send(data);
})

// 获取用户
router.get('/getOneUser/:_id', async function (req, res, next) {
  // req.params从传入参数中获取数据
  const { _id } = req.params;
  // 通过_id找到对应用户
  const data = await getone(_id);
  // 将获取的用户数据发送到页面
  res.send(data);
});

module.exports = router;
